import Schema from "validate";
const roomInfo = new Schema({
  // 楼栋
  building: {
    type: String, // 类型
    required: true, // 非空
    message: '楼栋不能为空', // 提示信息
  },
  // 房号
  room: {
    type: String, // 类型
    required: true, // 非空
    message: '房号不能为空', // 提示信息
  },
  // 姓名
  name: {
    type: String, // 类型
    match: /^[\u4e00-\u9fa5]{2,6}$/, // 中文正则
    message: '姓名中文 2-6位', // 提示信息
  },
  // 手机号码
  mobile: {
    type: String, // 类型
    match: /^1[3-9]\d{9}$/, // 手机号码
    message: '手机不合法', // 提示信息
  },
  // 身份证背面
  idcardBackUrl: {
    type: String, // 类型
    required: true, // 非空
    message: '身份证背面不能为空', // 提示信息
  },
  // 身份证正面
  idcardFrontUrl: {
    type: String, // 类型
    required: true, // 非空
    message: '身份证正面不能为空', // 提示信息
  }
}, {
  strip: false
})

Page({
  data: {
    /** * 小区楼栋信息 */
    building: '',
    /** * 业主性别0女1男 */
    gender: 1,

    /** * 身份证背面 */
    idcardBackUrl: '',
    /** * 身份证正面 */
    idcardFrontUrl: '',
    /** * 业主电话 */
    mobile: '',
    /** * 业主姓名 */
    name: '',
    /** * 小区信息 */
    point: '',
    /** * 小区房间信息 */
    room: '',
  },
  async onLoad({
    point,
    building,
    room,
    id
  }) {
    // console.log(point, building, room);
    if (id) {
      // console.log('编辑页面');
      wx.setNavigationBarTitle({
        title: '编辑房屋信息',
      })
      const res = await wx.http({
        url: '/room/' + id,
      })
      const { status, ...data } = res.data
      console.log(status, data);
      this.setData(data)

    } else {
      // console.log('新增页面');
      wx.setNavigationBarTitle({
        title: '新增房屋信息',
      })
      this.setData({
        point,
        building,
        room
      })
    }

  },
  // 上传身份证图片
  async onChooseMedia(ev) {
    // 自定义属性 data-type  和  ev.currentTarget.dataset.type 来获取
    // 小程序独有的方式  wxml中： mark:type="aaa" js中:ev.mark.type  获取到 "aaa"
    const res = await wx.chooseMedia({
      count: 1, //只能选择一张图片
      // 选择图片还是视频
      mediaType: ['image']
    })
    console.log(res);
    // 获取临时文件
    const {
      tempFilePath
    } = res.tempFiles[0]
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',
      // 文件临时路jin
      filePath: tempFilePath,
      name: 'file',
      header: {
        Authorization: `Bearer ${getApp().token}`
      },
      success: (res) => {
        console.log(res);
        const data = JSON.parse(res.data)
        // // 无法确定 正面 还是反面  自定义属性
        const type = ev.mark.type
        this.setData({
          [type]: data.data.url
        })
      },
      fail: (err) => {
        console.log(err);
      }
    })
  },
  // 提交审核
  async onSubmit() {
    console.log(1);
    const {
      id,
      building,
      gender,
      idcardBackUrl,
      idcardFrontUrl,
      mobile,
      name,
      point,
      room
    } = this.data
    const params = {
      id,
      building,
      gender,
      name,
      mobile,
      idcardBackUrl,
      idcardFrontUrl,
      point,
      room
    }
    const errors = roomInfo.validate(params)
    if (errors.length) {
      wx.utils.toast(errors[0].message)
      return
    }
    if (params.id === undefined) {
      delete params.id
    }
    // 构造数据，调用接口发送给后端
    console.log(params)
    const res = await wx.http({
      url: '/room',
      method: 'post',
      data: params,
    })
    console.log(res);
    if (res.code !== 10000) {
      return wx.utils.toast(res.message)
    }
    wx.showToast({
      title: '新增成功'
    })
    setTimeout(() => {
      wx.navigateTo({
        url: '/house_pkg/pages/list/index',

      })
    }, 1500)
  },
  removePicture(ev) {
    // 获取当前删除的是正面还是反面
    const {
      type
    } = ev.mark
    // 把data中对应的图片的url 设置为空 实现删除功能
    this.setData({
      // 变量 type =  idcardBackUrl  或者 = idcardFrontUrl
      [type]: ''
    })
  }



})